package com.huwei.data.manager;

import org.springframework.cache.annotation.Cacheable;
import org.springframework.core.annotation.Order;

/**
 * 	自定义数据源执行优先级接口
 * 数据源排序方式：
 * 1，数据源管理工厂获取优先级顺序：优先从bean本身获取{@link Order} 接口，其次从{@link DataSourceOrderProperites} 的实现类中获取，
 * 再从bean的所有父类中获取，最后从{@link DataSourceManagerFacotryProperties#getInterfacePackageName()} 所定义接口路径中，该bean的顶级接口中获取；
 * 2，上述1最后一种获取优先级方式说明：如果定义的数据源是接口，并由spring或其它框架生成的目标对象，再spring容器中可以通过数据源接口获取到该动态生成的bean，
 * 但该bean不具有{@link Order}注解（经测试这主要应对使用{@link Cacheable}这种方式生成的对象），这时候可以通过在数据源接口定义默认优先级，
 * 也可以在{@link DataSourceOrderProperites}其实现类中定义其优先级；
 * @author huwei
 */
public interface DataSourceOrderProperites {

	public Integer priority(String springKey);
}
